package com.ymatou.iapi.userservice.parameter.resp;


import java.util.Date;

import com.google.gson.annotations.SerializedName;
import com.ymatou.iapi.userservice.parameter.PrintFriendliness;
import com.ymatou.iapi.userservice.parameter.enums.*;

/**
 * Created by Administrator on 2016-12-17.
 */
public class UserDetailsInfoVo extends PrintFriendliness {
    private static final long serialVersionUID = 2204332766198008129L;

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getLoginId() {
        return loginId;
    }

    public void setLoginId(String loginId) {
        this.loginId = loginId;
    }

    public String getLoginEmail() {
        return loginEmail;
    }

    public void setLoginEmail(String loginEmail) {
        this.loginEmail = loginEmail;
    }

    public String getLoginMobile() {
        return loginMobile;
    }

    public void setLoginMobile(String loginMobile) {
        this.loginMobile = loginMobile;
    }

    public Integer getUserLevel() {
        return userLevel;
    }

    public void setUserLevel(Integer userLevel) {
        this.userLevel = userLevel;
    }

    public Integer getUserSafeLevel() {
        return userSafeLevel;
    }

    public void setUserSafeLevel(Integer userSafeLevel) {
        this.userSafeLevel = userSafeLevel;
    }

    public boolean isSetDualSecurity() {
        return isSetDualSecurity;
    }

    public void setSetDualSecurity(boolean setDualSecurity) {
        isSetDualSecurity = setDualSecurity;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getTradingPassword() {
        return tradingPassword;
    }

    public void setTradingPassword(String tradingPassword) {
        this.tradingPassword = tradingPassword;
    }

    public UserTypeEnum getUserType() {
        return userType;
    }

    public void setUserType(UserTypeEnum userType) {
        this.userType = userType;
    }

    public GenderEnum getUserGender() {
        return userGender;
    }

    public void setUserGender(GenderEnum userGender) {
        this.userGender = userGender;
    }

    public boolean isActivateEmail() {
        return isActivateEmail;
    }

    public void setActivateEmail(boolean activateEmail) {
        isActivateEmail = activateEmail;
    }

    public Date getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(Date registerTime) {
        this.registerTime = registerTime;
    }

    public Date getLastLoginTime() {
        return lastLoginTime;
    }

    public void setLastLoginTime(Date lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
    }

    public Integer getUserState() {
        return userState;
    }

    public void setUserState(Integer userState) {
        this.userState = userState;
    }

    public String getLogoUrl() {
        return logoUrl;
    }

    public void setLogoUrl(String logoUrl) {
        this.logoUrl = logoUrl;
    }

    public Date getActivateMobileTime() {
        return activateMobileTime;
    }

    public void setActivateMobileTime(Date activateMobileTime) {
        this.activateMobileTime = activateMobileTime;
    }

    public Date getActivateEmailTime() {
        return activateEmailTime;
    }

    public void setActivateEmailTime(Date activateEmailTime) {
        this.activateEmailTime = activateEmailTime;
    }

    public String getWang() {
        return wang;
    }

    public void setWang(String wang) {
        this.wang = wang;
    }

    public String getMsn() {
        return msn;
    }

    public void setMsn(String msn) {
        this.msn = msn;
    }

    public String getTelphone() {
        return telphone;
    }

    public void setTelphone(String telphone) {
        this.telphone = telphone;
    }

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    public AppSourceEnum getRegSource() {
        return regSource;
    }

    public void setRegSource(AppSourceEnum regSource) {
        this.regSource = regSource;
    }

    public Integer getVisitLan() {
        return visitLan;
    }

    public void setVisitLan(Integer visitLan) {
        this.visitLan = visitLan;
    }

    //@JsonInclude(JsonInclude.Include.NON_NULL)
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public ChannelSourceEnum getChannelSource() {
        return channelSource;
    }

    public void setChannelSource(ChannelSourceEnum channelSource) {
        this.channelSource = channelSource;
    }

    public TerminalSourceEnum getTerminalSource() {
        return terminalSource;
    }

    public void setTerminalSource(TerminalSourceEnum terminalSource) {
        this.terminalSource = terminalSource;
    }

    public String getEquimentid() {
        return equimentid;
    }

    public void setEquimentid(String equimentid) {
        this.equimentid = equimentid;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    //兼容NET
    public String getNickName() {
        return loginId;
    }

    public void setLocked(boolean locked) {
        this.locked = locked;
    }

    //兼容NET
    public Boolean getLocked() {
        return userState == 1;
    }

    public String getUserActivation() {
        return isActivateEmail  ? "Validated" : "Init";
    }

    public void setUserActivation(String userActivation) {
        this.userActivation = userActivation;
    }

    //main
    @SerializedName("iUserId")
    private int userId;
    @SerializedName("sLoginId")
    private String loginId;
    @SerializedName("sLoginEmail")
    private String loginEmail;
    @SerializedName("sLoginMobile")
    private String loginMobile;
    @SerializedName("iLevel")
    private Integer userLevel;
    private Integer userSafeLevel;
    private boolean isSetDualSecurity;
    @SerializedName("sPassword")
    private String password;
    @SerializedName("sTradingPassword")
    private String tradingPassword;
    @SerializedName("iType")
    private UserTypeEnum userType;
    @SerializedName("iSex")
    private GenderEnum userGender;
    private boolean isActivateEmail;
    //@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss")
    @SerializedName("CreateTime")
    private Date registerTime;
    @SerializedName("dLastLoginTime")
    private Date lastLoginTime;

    private Integer userState;
    //details
    @SerializedName("sUserLogoUrl")
    private String logoUrl;
    private Date activateMobileTime;
    private Date activateEmailTime;
    //private Date mobileBindTime;
    @SerializedName("sWang")
    private String wang;
    @SerializedName("sMsn")
    private String msn;
    @SerializedName("sPhone")
    private String telphone;
    @SerializedName("sQQ")
    private String qq;
    @SerializedName("iRegSource")
    private AppSourceEnum regSource;
    @SerializedName("iVisitLan")
    private Integer visitLan;
    @SerializedName("sMobilePhone")
    private String phone;
    @SerializedName("iChannelSource")
    private ChannelSourceEnum channelSource;
    @SerializedName("iTerminalSource")
    private TerminalSourceEnum terminalSource;
    private String equimentid;
    private String deviceId;
    private String country;
    private String province;
    private String city;
    @SerializedName("sNickName")
    private String nickName;
    @SerializedName("bLocked")
    private Boolean locked;
    @SerializedName("iAction")
    private String userActivation;
}
